package com.huyi.common.result;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.plugins.pagination.PageHelper;
import com.huyi.common.result.enums.ResultEnum;

/**
 * 通用结果返回集合
 * 
 * @author shengli.hu
 */
public class APIResponse {
	
	/**
	 * 请求成功返回
	 * 
	 * @param resultEnum
	 * @return
	 */
	public static JSONObject returnEnum(ResultEnum resultEnum) {
		JSONObject json = new JSONObject();
		json.put("code", resultEnum.getCode());
		json.put("msg", resultEnum.getMsg());
		return json;
	}
	
	/**
	 * 请求成功返回(JSON方式)
	 * 
	 * @return
	 */
	public static JSONObject returnSuccess() {
		// 增加返回结果
		JSONObject json = new JSONObject();
		json.put("code", ResultEnum.SUCCESS.getCode());
		json.put("msg", ResultEnum.SUCCESS.getMsg());
		return json;
	}
	
	/**
	 * 请求成功返回(JSON方式)
	 * 
	 * @param json
	 * @return
	 */
	public static JSONObject returnSuccess(String resultmsg) {
		// 增加返回结果
		JSONObject json = new JSONObject();
		json.put("code", ResultEnum.SUCCESS.getCode());
		json.put("msg", resultmsg);
		return json;
	}
	
	/**
	 * 请求成功返回(JSON方式)
	 * 
	 * @param json
	 * @return
	 */
	public static JSONObject returnSuccess(JSONObject json) {
		// 增加返回结果
		json.put("code", ResultEnum.SUCCESS.getCode());
		json.put("msg", ResultEnum.SUCCESS.getMsg());
		return json;
	}
	
	/**
	 * 请求失败返回(JSON方式)
	 * 
	 * @param code
	 * @param resultmsg
	 * 
	 * @return
	 */
	public static JSONObject returnError(Integer code, String resultmsg) {
		JSONObject json = new JSONObject();
		json.put("code", code);
		json.put("msg", resultmsg);
		return json;
	}
	
	/**
	 * 请求失败返回(JSON方式)
	 * 
	 * @param resultmsg
	 * @return
	 */
	public static JSONObject returnError(String resultmsg) {
		JSONObject json = new JSONObject();
		json.put("code", ResultEnum.BIZ_ERROR.getCode());
		json.put("msg", resultmsg);
		return json;
	}
	
    /**
     * 响应请求分页数据
     */
	public static JSONObject returnDataTable(List<?> list)  {
    	JSONObject rspData = new JSONObject();
    	rspData.put("code", ResultEnum.BIZ_ERROR.getCode());
    	rspData.put("msg", ResultEnum.SUCCESS.getMsg());
    	rspData.put("rows", list);
    	rspData.put("total", PageHelper.freeTotal());
        return rspData;
    }

}
